/*
Copyright (C) 2022-2024 Inspur Corp. All Rights Reserved.

SPDX-License-Identifier: Apache-2.0
*/
package model

type DidInfo struct {
	Did             string `json:"did"`
	WalletId        string `json:"walletId"`
	Version         string `json:"version"`
	Authentication  string `json:"authentication"`
	Recovery        string `json:"recovery"`
	ResolveEndpoint string `json:"resolveEndpoint"`
	ProofSignature  string `json:"proofSignature"`
}

type IssuerInfo struct {
	Id          string `json:"id"`
	Did         string `json:"did"`
	Name        string `json:"name"`
	ServiceType string `json:"serviceType"`
	Endpoint    string `json:"endpoint"`
}

type CptInfo struct {
	Id        string      `json:"id"`
	Title     string      `json:"title"`
	IssuerId  string      `json:"issuerId"`
	IssuerDid string      `json:"issuerDid"`
	Claims    []ClaimInfo `json:"claims"`
}

type ClaimInfo struct {
	Property    string `json:"property"`
	ValueType   string `json:"valueType"`
	Description string `json:"description"`
}

type CredentialInfo struct {
	Id        string `json:"id"`
	IssuerDid string `json:"issuerDid"`
	CptId     string `json:"cptId"`
	OwnerDid  string `json:"ownerDid"`
	ClaimHash string `json:"claimHash"`
	Signature string `json:"signature"`
}

type PresentationInfo struct {
	Id           string `json:"id"`
	CredentialId string `json:"credentialId"`
	Challenge    string `json:"challenge"`
	Domain       string `json:"domain"`
	Signature    string `json:"signature"`
}

type TransactionInfo struct {
	BlockNumber     uint64   `json:"blockNumber"`
	BlockHash       string   `json:"blockHash"`
	TxId            string   `json:"txId"`
	TxTime          string   `json:"txTime"`
	ContractId      string   `json:"contractId"`
	ContractVersion string   `json:"contractVersion"`
	Nonce           string   `json:"nonce"`
	Args            []string `json:"args"`
}
